import React, { Component } from 'react'
import './index.css'
import PubSub from 'pubsub-js'
export default class List extends Component {
  state = {// 初始化状态
		users:[],// 用来装用户数据
		isFirst:true,// 是否第一次打开页面
		isLoading:false,// 是否加载中
		err:'',//存储错误信息
	}
  componentDidMount(){// 组件挂载完成
   this.tonken = PubSub.subscribe('isMe',(_,userObj)=>{// 接收数据
      this.setState(userObj)
    })
  }
  componentWillUnmount(){// 组件即将销毁
    PubSub.unsubscribe(this.tonken) // 取消订阅

  }
  render() {
    const {users,isFirst,isLoading,err} = this.state
    return (
        <div className="row">
            {
                isFirst ? <h2>欢迎使用，输入关键字再点击搜索</h2> :isLoading ? <h2>数据加载中……</h2> :err ? <h2>{err}</h2>:
                users.map((userObj)=>{
return (<div className="card" key={userObj.id}>
          <a rel="noreferrer" href={userObj.html_url} target="_blank">
            <img alt='head' src={userObj.avatar_url} style={{width: '100px'}}/>
          </a>
          <p className="card-text">{userObj.login}</p>
        </div>)
                })
            }
      </div>
    )
  }
}
